/*
 * Menu.cpp
 *
 *  Created on: 27 mars 2012
 *      Author: alaa
 */
//#include <unistd.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include "Agence.h"
#include "DaoAgence.h"
#include "DaoVehicule.h"
#include "Vehicule.h"
#include "Tourisme.h"
#include "Utilitaire.h"
#include "DaoClient.h"
#include "Client.h"
#include "Siege.h"
using namespace std ;

DaoVehicule V ;
DaoClient C;
Siege S ;
Agence A ;
Location L;
ofstream myfile;
void Saisir_Client()
    		{long numClient;
    		long numPermis;
    		string nomClient;
    		string prenomClient;
    		string adresse;
    		string ville;
    		long telephone;

    			cout << endl << "Nouveau Client" << endl << endl;
    			cout << "numero de client: ";
    			cin >> numClient;

    			if( C.exist_Client(numClient) ){// methode a faire dans la classe Daoclient
    				cout << "Ce numero  existe deja" << endl;
    			}    else
    			{   cout<<" numClient:"<<endl;
    			    cin >> numClient;

    				cout << "numPermis : ";
    				cin >> numPermis;
    				cout << "nomClient : ";
    				cin >> nomClient;
    				cout << "prenomClient: ";
    				cin >> prenomClient;
    				cout << "adresse : ";
    				cin >> adresse;
    				cout << "ville : ";
    				cin >> ville;
    				cout << "tel: ";
    				cin >> telephone;

    				 Client c(numClient,numPermis,nomClient,prenomClient,adresse,ville,telephone);
    				 C.ajouterClient( c );


    			}
    		}



void Saisir_Voitureutilitaire()
    		{string matricule;
    		string couleur;
    		string marque;
    		double prixjour;
    		double chargeUtile;
    		float longueur;
    		float largeur;
    		float hauteur;
    		Utilitaire U ;
    			cout << endl << "Nouvelle voiture utilitaire" << endl << endl;
    			cout << "matricule : ";
    			cin >> matricule;

    			if( V.existVehicule(matricule) ){
    				cout << "Cette immatriculation existe deja" << endl;
    			}    else
    			{   cout<<" matricule:"<<matricule<<endl;
    			    cin >> matricule;

    				cout << "Marque : ";
    				cin >> marque;
    				cout << "Couleur : ";
    				cin >> couleur;
    				cout << "Prix : ";
    				cin >> prixjour;
    				cout << "chargeUtile : ";
    				cin >> chargeUtile;
    				cout << "longueur : ";
    				cin >> longueur;
    				cout << "largeur: ";
    				 cin >> largeur;
    				 cout << "Hauteur: ";
    				 cin >> hauteur;
    				 Utilitaire U(matricule,marque,couleur,prixjour,chargeUtile,longueur,largeur,hauteur);
    				 V.ajouterVehicule(U) ;


    			}
    		}

    		void Saisir_Voituretourstique()
    		    		{string matricule;
    		    		string couleur;
    		    		string marque;
    		    		double prixjour;
    		    		int nombrePortes;
    		    		int nombrePassagers;
    		    		int nombreBagages;
    		    		bool climatisationON;
    		    		Tourisme T ;

                            cout << endl << "Nouvelle voiture touristique" << endl << endl;
    		    			cout << "matricule : ";
    		    			cin >> matricule;

    		    			if( V.existVehicule(matricule) ){
    		    				cout << "Cette immatriculation existe deja" << endl;
    		    			}    else
    		    			{   cout<<" matricule:"<<matricule<<endl;
    		    			    cin >> matricule;

    		    				cout << "Marque : ";
    		    				cin >> marque;
    		    				cout << "Couleur : ";
    		    				cin >> couleur;
    		    				cout << "Prix : ";
    		    				cin >> prixjour;
    		    				cout << "nombrePortes : ";
    		    				cin >> nombrePortes;
    		    				cout << "nombrePassagers : ";
    		    				cin >> nombrePassagers;
    		    				cout << "nombreBagages: ";
    		    				 cin >> nombreBagages;
    		    				 cout << "climatisation: ";
    		    				 cin >> climatisationON;
    		    				 Tourisme T(matricule,marque,couleur,prixjour,nombrePortes,nombrePassagers,nombreBagages,climatisationON);
    		    				 V.ajouterVehicule(T) ;


    		    			}
    		    		}






int main()
{

	int  option;,trouve;

char save;
long c;

	cout<<"\n\n\n\n\n\n\n"<<endl ;;
	cout<<"        **     *********  *********  **********  **   ******   **       **"<<endl;
	cout<<"      ******   *********  *********  **********  **  ********  ***      **"<<endl;
	cout<<"     ********  **         **             **      **  **    **  ****     **"<<endl;
	cout<<"    ***        **         **             **      **  **    **  ** **    **"<<endl;
	cout<<"    **         *********  *********      **      **  **    **  **  **   **"<<endl;
	cout<<"    **         *********  *********      **      **  **    **  **   **  **"<<endl;
	cout<<"    **    ***  **                **      **      **  **    **  **    ** **"<<endl;
	cout<<"    ***   ***  **                **      **      **  **    **  **     ****"<<endl;
	cout<<"     ********  *********  *********      **      **  ********  **      ***"<<endl;
	cout<<"      *****    *********  *********      **      **   ******   **       **"<<endl;
	cout<<"\n\n\n\n\n\n\n"<<endl;
	sleep(2500);
	system("cls");
	cout<<"\n\n\n\n\n\n\n"<<endl;
	cout<<"                             ********    *********                         "<<endl;
	cout<<"                             *********   *********                         "<<endl;
	cout<<"                             **     ***  **                                "<<endl;
	cout<<"                             **     ***  **                                "<<endl;
	cout<<"                             **     ***  *********                         "<<endl;
	cout<<"                             **     ***  *********                         "<<endl;
	cout<<"                             **     ***  **                                "<<endl;
	cout<<"     	                     **     ***  **                               "<<endl;
	cout<<"                             *********   *********                         "<<endl;
	cout<<"                             ********    *********                         "<<endl;
	cout<<"\n\n\n\n\n\n\n"<<endl;
	sleep(2500);
	system("cls");
	cout<<"\n\n\n\n\n\n\n"<<endl;
	cout<<"**         ******    *******   ********** ********  **   ******    **       ** "<<endl;
	cout<<"**        *********  *******   ********** ********  **  ********   ***      ** "<<endl;
	cout<<"**        **     **  **        **      **    **     **  **    **   ***      ** "<<endl;
	cout<<"**        **     **  **        **      **    **     **  **    **   ** **    ** "<<endl;
	cout<<"**        **     **  **        **********    **     **  **    **   **  **   ** "<<endl;
	cout<<"**        **     **  **        **      **    **     **  **    **   **   **  ** "<<endl;
	cout<<"**        **     **  **        **      **    **     **  **    **   **    ** ** "<<endl;
	cout<<"**        **     **  **        **      **    **     **  **    **   **     **** "<<endl;
	cout<<"******    *********  ******    **      **    **     **  ********   **      *** "<<endl;
	cout<<"******     *******   *******   **      **    **     **   ******    **       ** "<<endl;
	cout<<"\n\n\n\n\n\n\n"<<endl;
	sleep(2500);
system("cls");

system("COLOR 1E");

cout<<"\n\n\n\n                 GESTION LOCATION DE VOITURE V2.1\n\n"<<endl;cout<<"\n\n"<<endl;
	for(int s=0;s<80;s++)
			putchar(260);
	cout<<"\n"<<endl;
		cout<<"                      ________________                           "<<endl;
		cout<<"                    /                  --<---<---<--             "<<endl;
					cout<<"             _ ___/                     --<---<---<--            "<<endl;
		cout<<"            |__ __                  ______ --<---<---<--         "<<endl;
		cout<<"                  (__)----------(__)                             "<<endl;
		for(int z=0;z<80;z++)
			putchar(260);cout<<"\n\n"<<endl;
			cout<<"                       developpee par:Tactcpp2                     \n\n\n"<<endl;


			cout<<"\n\n\n\tChargement"<<endl;
	for(int i=1;i<36;i++)
	{

		sleep(200);//attente
		cout<<".";

	}system("cls");
	do
{system("COLOR 1e");
	cout<<"\n"<<endl;
	cout<<"\n\n\n\t\t\t GESTION LOCATION DE VOITURE V2.1\n\n"<<endl;
	do
	 {string Login;
	 string Password;
	 int x;
	 Siege S;
	cout<<"BIENVENU:   Vous devez entrer votre login & mot de passe :"<<endl;
	cout<< "Votre login : "<<endl;
	cin>>Login;
	cout<< "Votre mot de passe : "<<endl;
	cin>>Password;
	S.IdentifierAgent(Login, Password);//methode a refaire la classe siege
	 } while((S.IdentifierAgent( Login, Password))==true);
	do{
			do


		cout<<"      ��������������������������MENU����������������������������ͻ"<<endl;
		cout<<"      �   -----------------------------------------------------  �"<<endl;
		cout<<"      �  (  | 1 | Ajouter Client                               ) �"<<endl;
		cout<<"      �                                                          �"<<endl;
		cout<<"      �  (  | 2 | Ajouter Voiture utilitaire                   ) �"<<endl;
		cout<<"      �                                                          �"<<endl;
		cout<<"      �  (  | 3 | Ajouter Voiture touristique                  ) �"<<endl;
		cout<<"      �                                                          �"<<endl;
		cout<<"      �  (  | 4 | Afficher les Clients                         ) �"<<endl;
		cout<<"      �                                                          �"<<endl;
		cout<<"      �  (  | 5 | Afficher les Voitures                        ) �"<<endl;
		cout<<"      �                                                          �"<<endl;
		cout<<"      �  (  | 6 | Modifier Client                              ) �"<<endl;
		cout<<"      �                                                          �"<<endl;
		cout<<"      �  (  | 7 | Modifier Voiture                             ) �"<<endl;
		cout<<"      �                                                          �"<<endl;
		cout<<"      �  (  | 8 | Louer Voiture                                ) �"<<endl;
		cout<<"      �                                                          �"<<endl;
		cout<<"      �  (  | 9 | Rentree Voiture                              ) �"<<endl;
		cout<<"      �                                                          �"<<endl;
		cout<<"      �  (  | 10| Supprimer Voiture                            ) �"<<endl;
		cout<<"      �                                                          �"<<endl;
		cout<<"      �  (  | 0 | EXIT                                         ) �"<<endl;
		cout<<"      �   -----------------------------------------------------  �"<<endl;
		cout<<"      ����������������������������������������������������������ͼ"<<endl;

		cout<<"      *        Entrer Votre Choix                    *\t"<<endl;
    cin>>option;
    while(option != 0)
    	{
    		switch(option)
    		{
    			case 1:
    				Saisir_Client();
    				break;

    			case 2:
    				Saisir_Voitureutilitaire();
    				break;
    			case 3:
    			    Saisir_Voituretourstique();
    			    break;
    			case 4:
    				C.listClient() ;
    				break;

    			case 5:
    				V.listeVehicule() ;
    				break;

    			case 6:
    				int  num ;

    				cout << "Saisir le numero du client : ";
    				cin >> num;
    				C.rechercherClient(num) ;
    				if(!myfile.eof()){
    					C.modiferClient();//methode a faire classe daoClient
    				}
    				else

    					cout << " client introuvable : ";
    				}

    				break;

    			case 7:
                    string mat ;
    				cout << "Saisir matricule du vehicule : ";
    				cin >> mat;
    				V.rechercherVehicule(mat);
    				if( !myfile.eof() )
    					V.modiferVehicule();//methode a faire Daovehicule
    				else
    					cout << "Vehicule introuvable";
    				break;
    			case 8:
    				 S.louer() ;

    			    	break;
    			case 9:
    				 string matVoiture;
    				 long idAgence;
    				 long numClient;
    				 string dateLocation;
    				 int nbJours;
    				 double coute;
    				 cout<<"Entrer Matricule : "<<endl;
    				 cin>>matVoiture;


    				 cout<<"Entrer numero d'agence : "<<endl;
    				 cin>>idAgence;

    				 cout>>"Entrer numero du client : "<<endl;
    				 cin>>numClient;

    			    cout<<" Entrer la date de location : : "<<endl;
    			    cin>>dateLocation;


    				cout<<"Entrer le nombre du jours:: "<<endl;

    				cin>>nbJours;
    				cout<<"Entrer le prix: "<<endl;

    				cin>>coute;


			    	   Location L(matVoiture , idAgence, , datelocation, nbJours,coute);

    			        S.supprimerLocation(L) ;

    			    	break;
    			case 10:

    				string matricule;
    			    string couleur;
    			    string marque;
    			    double prixjour;

    			    	cout<<"Entrer Matricule : "<<endl;
    			    	 cin>>matricule;

    			    	 cout<<"Entrer couleur : "<<endl;
    			    	  cin>>couleur;

    			    	  cout>>"Entrer la marque : "<<endl;
    			    	   cin>>marque;

    			    	   cout<<" Entrer prix du jour  : "<<endl;
    			    	    cin>>prixjour;

    			    	   cout<<"Entrer le nombre du jours:: "<<endl;

    			    	   cin>>nbJours;

    			    	   Vehicule v( matricule, marque, couleur, prixjour) ;



    			    	   V.supprimerVehicule(v) ;





    			    	break;
    			default:
    				cout << "Option non disponible" << "\a" << endl;
    		};









